package com.itheima.service.impl.menu;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.dao.menu.MenuDao;
import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Menu;
import com.itheima.service.menu.MenuService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * @author 林金洋
 * @since 2021/11/5 15:19
 */
@Service
public class MenuServiceImpl implements MenuService {
    @Autowired
    private MenuDao menuDao;

    /**
     * 查询，分页
     * @param queryPageBean 传入查询条件对象
     * @return 分页数据
     */
    @Override
    public PageResult findAll(QueryPageBean queryPageBean) {
        Integer currentPage = queryPageBean.getCurrentPage();
        Integer pageSize = queryPageBean.getPageSize();
        String queryString = queryPageBean.getQueryString();
        PageHelper.startPage(currentPage,pageSize);

        Page<Menu> page = menuDao.findByCondition(queryString);
        long total = page.getTotal();
        List<Menu> rows = page.getResult();
        return new PageResult(total,rows);
    }

    /**
     * 添加菜单项
     * @param menu 菜单项序号
     * @return 判断结果
     */
    @Override
    public boolean addMenu(Menu menu) {
        int i = menuDao.addMenu(menu);
        return i>0;
    }

    /**
     * 删除菜单项
     * @param id 菜单项序号
     * @return 判断结果
     */
    @Override
    public boolean deleteMenu(Integer id) {
        int i = menuDao.deleteMenu(id);
        return i>0;
    }

    /**
     * 更新菜单项
     * @param menu 菜单对象
     * @return 判断结果
     */
    @Override
    public boolean updateMenu(Menu menu) {
        int i = menuDao.updateMenu(menu);
        return i>0;
    }

    /**
     * 绑定数据，展示在编辑页面上
     * @param id 传入菜单项序号
     * @return 返回数据集合
     */
    @Override
    public List<Menu> findByMenuId(Integer id) {
        return menuDao.findByMenuId(id);
    }
}
